使用ggplot2繪製散佈圖、線圖、直方圖、盒鬚圖與長條圖。
## 'data.frame': 108 obs. of 11 variables:
## $ CityID : int 63000 63000 63000 63000 63000 63000 63000 63000 63000 63000 ...
## $ City : Factor w/ 1 level "臺北市": 1 1 1 1 1 1 1 1 1 1 ...
## $ TownID : int 63000010 63000020 63000030 63000040 63000050 63000060 63000070 63000080 63000090 63000100 ...
## $ TownName : Factor w/ 12 levels "士林區","大同區",..: 9 10 3 4 5 2 12 7 11 6 ...
## $ TotalEvent : int 391 665 642 749 535 436 754 371 260 423 ...
## $ CrimeRate : num 186 290 205 324 328 ...
## $ OffenseClearedNumber: int 310 520 541 637 538 355 653 347 232 375 ...
## $ ClearanceRate : num 79.3 78.2 84.3 85 100.6 ...
## $ Offenders : int 214 343 319 378 342 253 408 271 133 286 ...
## $ OffenderRate : num 102 150 102 164 210 ...
## $ Year : int 2015 2015 2015 2015 2015 2015 2015 2015 2015 2015 ...
資料處理
Sum_Offenders_Year <- aggregate(crime_df$Offenders, by=list(Year=crime_df$Year), FUN=sum)
Sum_OffenseClearedNumber_Year <- aggregate(crime_df$OffenseClearedNumber, by=list(Year=crime_df$Year), FUN=sum)
Sum_TotalEvent_Year <- aggregate(crime_df$TotalEvent, by=list(Year=crime_df$Year), FUN=sum)Sum_Year <- merge(Sum_Offenders_Year, Sum_OffenseClearedNumber_Year, all.x = TRUE)
Sum_Year <- merge(Sum_Year, Sum_TotalEvent_Year, all.x = TRUE)Sum_Year_long_df <- gather(Sum_Year, key = Category, value = values, Offenders, OffenseClearedNumber,TotalEvent)資料處理
挑出2015年的資料後,選取需要的欄位,再轉換成長表格以繪製多重直方圖。
crime_2015 <- crime_df[crime_df$Year==2015,]
crime_2015_sel <- select(crime_2015,TownName,TotalEvent,OffenseClearedNumber,Offenders)
crime_2015_long_df <- gather(crime_2015_sel, key = Category, value = values, TotalEvent, OffenseClearedNumber,Offenders)bar2015 <- ggplot(crime_2015_long_df, aes(x = TownName, y = values)) +
geom_bar(aes(fill = Category),stat = "identity",position = "dodge")+
ggtitle("2015年臺北市各行政區竊盜犯罪統計") +
xlab("Town") +
ylab("Value") +
scale_fill_brewer(palette = "Set3", name = "統計項目")
ggplotly(bar2015)以上都是只看項目的統計總數,但是每個區域的人口數量不一樣,所以只看總數的話可能比較不周全。
臺北市較詳細的犯罪資料統計數據目前只有找到竊盜案件,另外還有多種類型的犯罪案件數據,資料比較新但是內容記錄較為粗糙。
## 'data.frame': 4958 obs. of 4 variables:
## $ Time : int 1050111 1050112 1050121 1050126 1050128 1050205 1050210 1050210 1050212 1050220 ...
## $ CityName: chr "臺北市" "臺北市" "臺北市" "臺北市" ...
## $ TownName: chr "士林區" "士林區" "士林區" "士林區" ...
## $ Type : chr "住宅竊盜" "住宅竊盜" "住宅竊盜" "住宅竊盜" ...